package com.scene.q1_Basic;

public class BasicGrammarCycle {
    public static void main(String[] args) {
        System.out.println("=== break 示例 ===");
        breakExample();

        System.out.println("=== break nested 示例 ===");
        breakNestedExample();

        System.out.println("\n=== continue 示例 ===");
        continueExample();

        System.out.println("\n=== return 示例 ===");
        returnExample();

        System.out.println("\n=== 跳出最外层循环 示例 ===");
        outOfTheOutermostLoopExample();// 跳出最外层循环


    }

    // break 示例 - 跳出整个循环
    private static void breakExample() {
        for (int i = 0; i < 5; i++) {
            if (i == 3) {
                System.out.println("遇到 i=3，使用 break 跳出循环");
                break; // 跳出整个循环
            }
            System.out.println("break 示例 - i: " + i);
        }
        System.out.println("break 示例 - 循环结束");
    }

    private static void breakNestedExample() {
        // 外层循环
        for (int i = 0; i < 3; i++) {
            System.out.println("外层循环 i: " + i);

            // 中层循环
            for (int j = 0; j < 3; j++) {
                System.out.println("  中层循环 j: " + j);

                // 内层循环
                for (int k = 0; k < 3; k++) {
                    if (k == 1 && j == 1 && i == 1) {
                        System.out.println("     内层循环 k: " + k + " - 使用 break 跳出当前循环");
                        break; // 只跳出最内层循环
                    }
                    System.out.println("     内层循环 k: " + k);
                }
            }
        }
        System.out.println("break 示例 - 所有循环结束");
    }

    // continue 示例 - 跳过本次循环
    private static void continueExample() {
        for (int i = 0; i < 5; i++) {
            if (i == 2) {
                System.out.println("遇到 i=2，使用 continue 跳过本次循环");
                continue; // 跳过本次循环，继续下一次
            }
            System.out.println("continue 示例 - i: " + i);
        }
        System.out.println("continue 示例 - 循环结束");
    }

    // return 示例 - 直接返回
    private static void returnExample() {
        for (int i = 0; i < 5; i++) {
            if (i == 1) {
                System.out.println("遇到 i=1，使用 return 结束方法");
                return; // 直接结束方法
            }
            System.out.println("return 示例 - i: " + i);
        }
        System.out.println("这行不会被执行"); // 因为上面有 return
    }

    // 跳出最外层循环
    private static void outOfTheOutermostLoopExample() {
        outerLoop:
        // 使用标签标识外层循环
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 10; j++) {
                if (j == 5) {
                    break outerLoop; // 跳出外层循环
                }
                System.out.println("i: " + i + ", j: " + j);
            }
        }
        System.out.println("外层循环已跳出");
    }


}
